1. Field of the Invention
The present invention relates to a data control apparatus, a storage system, and a computer program product.
2. Description of the Related Art
Recently, a NAND (not AND) flash memory is being widely used as a type of storage media. The NAND flash memory is a nonvolatile memory capable of holding information even when power supply is stopped.
Because the NAND flash memory has an increased capacity and a higher integration, influences of secular change of data written in the memory, or read disturbance, which is data corruption resulting from a reading process, become significant. Accordingly, the data stored in the memory can be degraded, which increases the possibility that the stored data cannot be reproduced correctly. The secular change is a phenomenon in which an error occurs in data due to gradual discharge with time from a floating gate having charges accumulated therein. The read disturbance is a phenomenon in which an error occurs in the stored data due to slight charges that are accumulated in a floating gate of a memory cell adjacent to a memory cell from which the data is read.
In the NAND flash memory, to solve the problems of the secular change and the read disturbance, an error correcting code that enables to correct an error occurring in data is applied, thereby restoring correct data.
In addition, in the NAND flash memory, a refresh process of rewriting data in the NAND flash memory after the error correction is performed. Accordingly, it is possible to prevent data stored in the NAND flash memory from being completely damaged, and to increase a data retention period.
In the NAND flash memory, when data are concentrically written or erased only in/from a specific block, only this block reaches the end of its operating life earlier. Therefore, wear leveling is performed to convert address signals from outside into different addresses in a chip, so that the numbers of writings/erasures into/from blocks are averaged.
Recently, a NAND flash memory having the same connection interface standard as that of a hard disk drive (HDD) (AT attachment (ATA) standard) has been developed, and is called “solid state drive (SSD)”. The SSD has a data reading performance higher than the HDD, and has a low-power-consumption and impact-resistant property.
Meanwhile, in a storage system such as a disk array applied in a server environment, redundant arrays of independent/inexpensive disks (RAID) in which plural memory devices are connected are usually arranged to improve reliability, as described in “A Case for Redundant Arrays of Inexpensive Disks (RAID), D. Patterson, G. Gibson, and R. Katz., Proceedings of the 1998 ACM SIGMOD, pp. 109-116, June 1988”. For example, in RAID 5, a memory device assigned to store an error correcting code called “parity” and memory devices assigned to store data are arranged with the positions being changed by turns in each stripe. Accordingly, even when a specific memory device fails and then data cannot be read therefrom, the data stored in the faulty memory device can be recovered from data stored in the remaining memory devices. In a disk array device that implements the RAID function, it is possible to enhance fault tolerance, increase the capacity, and speed up the reading process. Further, when read/write requests are distributed over the memory devices in units called “stripe blocks”, loads on the memory devices can be distributed. It is expected that such load distribution equalizes accesses to the memory devices.
The RAID can be configured also when a secondary memory is configured by the SSD, instead of the HDD.
However, when the secondary memory is configured by the SSD instead of the HDD and when the RAID is configured, there is a high possibility that the numbers of writings/erasures are smoothed by the wear leveling in the SSDs, and that the numbers of writings into the SSDs can be equalized by the load distribution according to the RAID function. Therefore, the risk that the plural SSDs may fail around the same time is increased. If the SSDs configuring the RAID fail around the same time, a replacement or maintenance operation becomes difficult, and thus the risk of data loss arises.